/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ejb;

import java.util.LinkedList;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author alexcarpentieri
 */
@Stateless
public class GestoreEsercizioCommerciale implements GestoreEsercizioCommercialeLocal {
    
    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method")
    @EJB
    EsercizioCommercialeFacadeLocal esercizioFacade;
    @EJB
    PremioFacadeLocal premioFacade;
    @EJB
    CampagnaRaccoltaPuntiFacadeLocal campagnaFacade;
    

    
    @Override
    public EsercizioCommerciale createEsercizioCommerciale(String userName,String password,String telefono,String recapitoMail,String indirizzo) {
        EsercizioCommerciale esercizioCommerciale=new EsercizioCommerciale();
        esercizioCommerciale.setIndirizzo(indirizzo);
        esercizioCommerciale.setPassword(password);
        esercizioCommerciale.setRecapitoMail(recapitoMail);
        esercizioCommerciale.setTelefono(telefono);
        esercizioCommerciale.setUserName(userName);
        esercizioFacade.create(esercizioCommerciale);
        return esercizioCommerciale;
    }
    
    public EsercizioCommerciale addCassiere(EsercizioCommerciale esercizioCommerciale, Cassiere cassiere){
        List<Cassiere> listaCassieri=esercizioCommerciale.getCassiereList();
        if(listaCassieri!=null){
            listaCassieri.add(cassiere);
        }else{
            listaCassieri= new LinkedList<Cassiere>();
            listaCassieri.add(cassiere);
        }
        esercizioCommerciale.setCassiereList(listaCassieri);
        esercizioFacade.edit(esercizioCommerciale);
        return esercizioCommerciale;
    }

    @Override
    public EsercizioCommerciale findEsercizioCommerciale(String userName, String password) {
        List<EsercizioCommerciale> list=esercizioFacade.findAll();
        for(EsercizioCommerciale e:list){
            if (e.getUserName().equals(userName) && e.getPassword().equals(password)){
                return e;
            }
        }
        return null;
    }
    
    @Override
    public Premio aggiungiPremio(EsercizioCommerciale esercizioCommerciale, String descrizione, Long numeroDiPuntiNecessari) {
        Premio premio=new Premio();
        premio.setDescrizione(descrizione);
        premio.setNumeroDiPuntiNecessari(numeroDiPuntiNecessari);
        premioFacade.create(premio);
        esercizioCommerciale.getPremioList().add(premio);
        List<CampagnaRaccoltaPunti> list=esercizioCommerciale.getCampagnaRaccoltaPuntiList();
        CampagnaRaccoltaPunti mostRecent= new GestoreCampagnaRaccoltaPunti().mostRecent(list);
        mostRecent.getListaPremi().add(premio);
        campagnaFacade.edit(mostRecent);
        esercizioFacade.edit(esercizioCommerciale);
        return null;
    }
    
    
    
    
}
